/*
 * 文件名：FileUtils.java
 * 版权：MoonBox 
 * 修改人：Peter
 * 修改时间：2018年9月30日
 * 修改内容：新增
 */
package com.renzhebiao.lkang.utils;

import java.io.File;
import java.io.IOException;

import org.springframework.web.multipart.MultipartFile;

/**
 * 文件上传工具类
 * <p>
 * 
 * @author Peter
 * @since 1.0.0
 */
public class FileUtils {

    /**
     * @param file 文件
     * @param path 文件存放路径
     * @param fileName 原文件名
     * @return
     */
    public static String upload(MultipartFile file, String path, String fileName) {
        String newFileName = FileUtils.getFileName(fileName);
        // 生成新的文件名
        String realPath = path + "/" + newFileName;

        // 使用原文件名
        // String realPath = path + "/" + fileName;

        File dest = new File(realPath);

        // 判断文件父目录是否存在
        if (!dest.getParentFile().exists()) {
            dest.getParentFile().mkdir();
        }

        try {
            // 保存文件
            file.transferTo(dest);
            return newFileName;
        } catch (IllegalStateException e) {
            e.printStackTrace();
            return null;
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }

    }

    /**
     * 生成新的文件名
     * 
     * @param fileOriginName 源文件名
     * @return
     */
    public static String getFileName(String fileOriginName) {
        return UUIDutil.getUUID() + FileUtils.getSuffix(fileOriginName);
    }

    /**
     * 获取文件后缀
     * 
     * @param fileName
     * @return
     */
    public static String getSuffix(String fileName) {
        return fileName.substring(fileName.lastIndexOf("."));
    }

}
